-- stack: in.1 Demo -- format: 8 (HyperCard 1) -- flags: 0x1000 (none) -- protect password hash: 0 -- maximum user level: 5 (scripting) -- window: Rect(x1=0, y1=0, x2=0, y2=0) -- screen: Rect(x1=0, y1=0, x2=0, y2=0) -- card dimensions: w=0 h=0 -- scroll: x=0 y=0 -- background count: 2 -- first background id: 2635 -- card count: 14 -- first card id: 2994 -- list block id: 10040 -- print block id: 3522 -- font table block id: 0 -- style table block id: 0 -- free block count: 4 -- free size: 10752 bytes -- total size: 163840 bytes -- stack block size: 30208 bytes -- created by hypercard version: 0x01228000 -- compacted by hypercard version: 0x01228000 -- modified by hypercard version: 0x01228000 -- opened by hypercard version: 0x01228000 -- patterns[0]: 0x0000000000000000 -- patterns[1]: 0x0000220000002200 -- patterns[2]: 0x8800220088002200 -- patterns[3]: 0xCC003300CC003300 -- patterns[4]: 0xCC883322CC883322 -- patterns[5]: 0xEE88BB22EE88BB22 -- patterns[6]: 0xEECCBB33EECCBB33 -- patterns[7]: 0xFFCCFF33FFCCFF33 -- patterns[8]: 0xFFEEFFBBFFEEFFBB -- patterns[9]: 0xFFFFFFBBFFFFFFBB -- patterns[10]: 0x8010022001084004 -- patterns[11]: 0xFFFFFFFFFFFFFFFF -- patterns[12]: 0x8822882288228822 -- patterns[13]: 0x1122448811224488 -- patterns[14]: 0xC4800C6843023026 -- patterns[15]: 0xB130031BD8C00C8D -- patterns[16]: 0xAA00AA00AA00AA00 -- patterns[17]: 0x8822552288225522 -- patterns[18]: 0x8855225588552255 -- patterns[19]: 0x77DD77DD77DD77DD -- patterns[20]: 0x8000000000000000 -- patterns[21]: 0xAA55AA55AA55AA55 -- patterns[22]: 0x018648281905030F -- patterns[23]: 0x8244394482010101 -- patterns[24]: 0x8814224188412214 -- patterns[25]: 0x8080413E080814E3 -- patterns[26]: 0x22048C7422179810 -- patterns[27]: 0xBE808808EB088880 -- patterns[28]: 0x25C8328964244C92 -- patterns[29]: 0xA29C41BE2AC914EB -- patterns[30]: 0x40A00000040A0000 -- patterns[31]: 0x8040200002040800 -- patterns[32]: 0xAA00800088008000 -- patterns[33]: 0xFF80808080808080 -- patterns[34]: 0x081C22C180010204 -- patterns[35]: 0xFF808080FF080808 -- patterns[36]: 0x7E7E7E7E7E7E7E7E -- patterns[37]: 0x00FFFFFFFFFFFF00 -- patterns[38]: 0xFF7FBE5DA2418000 -- patterns[39]: 0xFAF5FAF5A050A050 -- checksum: 0x0 ----- HyperTalk script ----- -- SmartSlides version 1.1 -- design and all scripts -- copyright, 4 June 1990 -- Mark A. Brown -- Philosophy Department -- Syracuse University -- Syracuse, NY 13244 -- (315) 443-5818 -- Menu XCMDs and XFCNs are from freeware made available by -- Nine To Five Software. My thanks to them. on startUp --disables handler in Home Stack which would reset --userlevel when stack is opened by double-clicking end startUp on openStack global Speed, FlashNumber, ShortDelay, LongDelay, TabWidth, FieldsLocked, ToolView, Squeezer, LineWidth, Linking hide menuBar set the userLevel to 5 set the cursor to browse put 100 into speed --normal speed for dragging put 4 into FlashNumber --number of times to flash put 5 into ShortDelay --interval between flashes of flasher buttons put 20 into LongDelay --length of flashes of flasher buttons put false into Squeezer --don't squeeze lines in text fields at first put 3 into LineWidth --standard thickness of lines put 5 into TabWidth --standard indent created by Tabbing put false into Linking --not linking cards at first set the hilite of background button id 99 to false -- --not chaining if the number of cards <= 2 then --seed stack put (the number of card fields is not 0) into FieldsLocked --no locked fields in seed stack send SetUp to background button id 26-- of card 1 show menubar else --developed stack put "Precycling Cards" lock screen set the cursor to browse put 2000 into Speed show all cards go first put 100 into speed put empty hide msg hide menubar unlock screen beep --to signal end of precycling put true into FieldsLocked --no unlocked fields at first end if end openStack on closeStack lock screen set the lockmessages to true push card go first send HideTools to background "Work" pop card set the lockmessages to false unlock screen if (freeSize of this stack) > 0 and the optionKey is not down then domenu "Compact Stack" end if end closeStack on lockFields global FieldsLocked, FieldMenu choose Browse tool repeat with i = 1 to the number of card fields set the locktext of card field i to true end repeat put true into FieldsLocked ChangeMenu FieldMenu,14,"Unlock All " set the icon of background button id 25 to "LockedFields" end lockFields on unlockFields global FieldsLocked, FieldMenu repeat with i = 1 to the number of card fields set the locktext of card field i to false end repeat put false into FieldsLocked ChangeMenu FieldMenu,14,"Lock All " set the icon of background button id 25 to "UnlockedFields" end unlockFields on NoScripts lock screen set the lockmessages to true go next go previous set the lockmessages to false unlock screen if field "GraphArea" is not empty or field "LineSpecs" is not empty then answer "Delete slide's line/arrow/graph buttons?" with "Okay" or "Cancel" if it is "Okay" then requestPatience choose button tool set the cursor to busy repeat with i = the number of buttons down to 1 if the short name of button i is "Draw" or the short name of button i is "Graph" then set the cursor to busy select button i doMenu "clear button" end if end repeat choose browse tool unlock screen put empty into field "LineSpecs" put empty into field "GraphArea" put empty into msg hide msg end if end if end NoScripts on SetFont global Mode, Squeezer put word 1 of Mode into NewFont put word 2 of Mode into NewSize set the textFont of the target to NewFont set the textSize of the target to NewSize if Squeezer is true then set the textHeight of the target to (NewSize + 2) else set the textHeight of the target to (4*NewSize)/3 end if end SetFont on SetRate if first word of short name of target is not "AutoScroller" then answer "That is not an autoscrolling field." with "Okay" else ask "Enter desired number of pixels/scroll cycle." with word 2 of short name of target if it is not empty then if it > 0 and (length of it) < 3 then set the name of target to "Autoscroller " & it else answer "Need a whole number. Try again." with "Okay" end if end if end if end SetRate on requestClick clicks show msg at 15,320 if clicks is empty or clicks is 1 then put "Click on desired field." if clicks is 2 then put "Click at beginning and at end desired." end requestClick on request2Fields show msg at 15,320 put "Click on two fields to connect." end request2Fields on requestPatience show msg at 15,320 put "There will be a slight delay. Please be patient." end requestPatience on requestCard show msg at 15,270 put "Please go to the desired card and click on it." end requestCard on Reset CleanUp lockFields put (freesize of this stack) into FS if FS > 10000 then put "Compacting Stack (" & FS & " free)" domenu "Compact Stack" put empty into msg hide msg end if beep end Reset on resetAll push card requestPatience lock screen set the lockMessages to true put the number of cards of background "work" into lastcard repeat with i = 1 to lastcard go to card i of background "work" put "Resetting slide " & i & " of " & lastcard & "." CleanUp lockFields end repeat put empty into msg hide msg pop card hidetools hide menubar unlock screen set the lockMessages to false end resetAll on CleanUp lock screen repeat with i = 1 to the number of card fields if "PopUp" is in the short name of card field i then hide card field i else if the short name of card field i is "TypeWriter" then put empty into card field i else if the style of card field i is "Scrolling" then set the scroll of card field i to 0 set the cursor to busy end repeat repeat with i = 1 to the number of buttons put the short name of button i into TheName set the cursor to busy if TheName is not "Hidden" and " " is not in TheName then show button i --looks for OPTION space in TheName if (word 1 of theName is "Shrinker") then send restore to button i else if "Step" is in TheName then RestoreStep i else if TheName is "Shutter" then set the style of button i to opaque else if TheName is "Hiliter" then set the hilite of button i to false else if TheName is "Inverter" then set the hilite of button i to true else if TheName is "Checkbox Dingbat" then set the icon of button i to 10454 else if TheName is "Arrow Dingbat" then set the icon of button i to 2415 end repeat if field "LineSpecs" is not empty or field "GraphArea" is not empty then set the cursor to busy choose reg poly tool set the cursor to busy domenu "revert" choose browse tool set the cursor to busy end if unlock screen set the cursor to browse end CleanUp on DoFX direction if direction is "next" then put 1 into FXLine else put 2 into FXLine end if if field "FX" is not empty then set the cursor to busy put line FXLine of field "FX" into request do "visual effect" && request end if do "go " & direction end DoFX on ChangeAutoReset global WorkMenu --field ID 306 exists only to use its name as a "durable" global --variable, i.e. one which survives exits from HyperCard if true is in the name of field id 306 then set the name of field id 306 to "AutoReset false" CheckMenu WorkMenu,12,False else set the name of field id 306 to "AutoReset true" CheckMenu WorkMenu,12,True end if end ChangeAutoReset on RestoreStep wanted put the id of button wanted into wanted put 1 into item 1 of line wanted of field "Chains" if item 2 of line wanted of field "Chains" is empty then set the name of button ID wanted to "Step (1)" else set the name of button ID wanted to "Step 1" end if end RestoreStep on newLecture global Mode show msg at 15,280 put "Creating new SmartSlides stack. Please be patient." HideTools lock screen set the lockMessages to true go to card "FX" of this stack domenu "Copy card" go to card 1 of this stack put "Lecture" into Mode doMenu "New Stack..." --produces clean copy of first background put empty into Mode if the number of cards is 1 then --didn't abort menu command put "Still working. Please be patient." domenu "Paste card" --adds second background go previous send SetUp to background button id 26 --show tools send mouseUp to background button id 117 --create cd btn "Delay" send mouseUp to background button id 119 --create cd btn "Beep" send mouseUp to background button id 206 --create cd btn "LockScreen" send mouseUp to background button id 233 --create cd btn "Opener" put 1 into field "CardNumber" --set default effects: put "scroll left slowly to card" & return & "scroll right slowly to card" into field "FX" put (freesize of this stack) into FS if FS > 10000 then put "Compacting Stack (" & FS & " free)" domenu "Compact Stack" put empty into msg hide msg end if ShowCredits end if unlock screen set the lockMessages to false beep end newLecture on domenu which global Mode if the optionKey is up then if which is "New Stack..." and Mode is not "Lecture" then newLecture else if which is "Back" then type numtochar(126) else if which is "Help" then GiveHelp "General Introduction " else pass domenu --handling "New Stack…" substitutes newLecture for Apple's menu item --to prevent making a lecture stack which is only half-formed; --handling "Back" avoids accidentally changing cards --when you intend to type ~ else put "For help concerning Apple's menus, see Apple's Help Stack." help end if end domenu on MakeCard global ToolView requestPatience put empty into ToolView doMenu "New Card" send SetUp to background button id 26 --show tools send mouseUp to background button id 117 --create cd btn "Delay" send mouseUp to background button id 119 --create cd btn "Beep" send mouseUp to background button id 206 --create cd btn "LockScreen" send mouseUp to background button id 233 --create cd btn "Opener" put the number of this card into field "CardNumber" --set default effects: put "scroll left slowly to card" & return & "scroll right slowly to card" into field "FX" put (freesize of this stack) into FS if FS > 10000 then put "Compacting Stack (" & FS & " free)" domenu "Compact Stack" end if put empty into msg hide msg end MakeCard on MakeAutoscroll lock screen set cursor to busy requestPatience set cursor to busy createField 135 --AutoScroller 2 put the number of card fields into newField set cursor to busy createButton 79 --to hide scroll bar set cursor to busy choose browse tool put the number of card buttons into lastButton set the name of button lastbutton to "Inert" set the script of button lastbutton to empty set cursor to busy set the rect of button lastButton to 461,50,484,271 set cursor to busy put "Enter scrolltext" & return & "with return after" & return & "each line." into card field newField set cursor to hand put empty into msg hide msg unlock screen select text of card field newField end MakeAutoscroll on MakeTypeWriterField global ObjectID ask "What do you want typed in the field?" with "Enter text to be typed here." put "--" & it into TypeText createField 237 put ObjectID into FieldID set the script of card field id FieldID to TypeText createButton 266 set the name of button id ObjectID to "CursorCover "& FieldID choose browse tool end MakeTypeWriterField on doTyping here if card field id here is empty then put the script of card field id here into TypeText delete char 1 to 2 of TypeText set the locktext of card field id here to false select text of card field id here repeat with i = 1 to the number of chars of typetext if char i of typetext is not space then wait 5 type char i of typetext end repeat set the lockText of card field id here to true select empty else put "--" & (card field id here) into TypeText set the script of card field id here to TypeText put empty into card field id here if the textalign of card field id here is "right" then put item 2 of the rect of card field id here into Y1 put item 3 of the rect of card field id here into X2 put item 4 of the rect of card field id here into Y2 set the rect of card button ("CursorCover " & here) to (X2-10),(Y1+1),(X2-3),(Y2-3) else set the rect of card button ("CursorCover " & here) to 0,0,0,0 end if end if end doTyping on setEffects global FX push card lock screen put field "FX" into FX go to card "FX" repeat with i = 1 to the number of card fields hide card field i end repeat hide button "Go Back" hide picture of card "FX" unlock screen end setEffects on HideTools global Toolview, WorkMenu set the icon of background button id 26 to 28097 set the icon of background button id 26 to 24272 if Toolview is "ButtonTools" then HideButtonTools end if if ToolView is "DrawTools" then HideDrawTools end if if ToolView is "FieldTools" then HideFieldTools end if hide background button id 22 --choose buttontool hide background button id 23 --choose fieldtool hide background button id 68 --set visual effects hide background button id 94 --button to show drawing tools hide background button id 92 --button to show button buttons hide background button id 93 --button to show field buttons hide background button id 21 --new card hide background button id 20 --new stack hide background button id 126 --CleanUp set the icon of background button id 26 to 0 set the style of background button id 26 to transparent hide background button id 98 --black backdrop changeMenu WorkMenu,3,"Show Tools " lockFields end HideTools on ShowTools global WorkMenu, ToolView show background button id 98 --black backdrop set the style of background button id 26 to rectangle set the icon of background button id 26 to 24272 set the icon of background button id 26 to 28097 set the icon of background button id 26 to 15566 changeMenu WorkMenu,3,"Hide Tools " show background button id 81 --emergency editing (right margin) show background button id 126 --CleanUp show background button id 20 --new stack show background button id 21 --new card show background button id 93 --show field buttons show background button id 92 --show button buttons show background button id 94 --show drawing tools show background button id 68 --set visual effects show background button id 23 --choose fieldtool show background button id 22 --choose buttontool if ToolView is empty then ShowFieldTools else if ToolView is "FieldTools" then ShowFieldTools else if ToolView is "ButtonTools" then ShowButtonTools else if ToolView is "DrawTools" then ShowDrawTools end ShowTools on ShowFieldTools global FieldsLocked, ToolView put "FieldTools" into ToolView if FieldsLocked then set the icon of background button id 25 to "LockedFields" else set the icon of background button id 25 to "UnlockedFields" end if show background button id 10 --title field show background button id 14 --body field show background button id 12 --full card field show background button id 69 --large font field show background button id 121 --popup field show background button id 249 --shimmerfield show background button id 250 --bulger show background button id 251 --rectangle field show background button id 252 --scrolling show background button id 253 --typewriter field show background button id 254 --autoscrolling field show background button id 11 --columns show background button id 284 --change font show background button id 285 --change field style show background button id 134 --toggle textHeight show background button id 86 --left align text show background button id 87 --center align text show background button id 88 --right align text show background button id 25 --lock/unlock fields end ShowFieldTools on HideFieldTools hide background button id 25 hide background button id 88 hide background button id 87 hide background button id 86 hide background button id 134 --toggle textHeight hide background button id 285 --change style hide background button id 284 --change font hide background button id 11 hide background button id 254 --autoscrolling field hide background button id 253 --typewriter field hide background button id 252 --scrolling hide background button id 251 --rectangle field hide background button id 250 --bulger hide background button id 249 --shimmerfield hide background button id 121 hide background button id 69 hide background button id 12 hide background button id 14 hide background button id 10 end HideFieldTools on ShowButtonTools global ToolView put "ButtonTools" into ToolView show background button id 99 --chain together show background button id 16 --hiliter show background button id 129 --tile hiliters show background button id 70 --flasher show background button id 255 --inverter show background button id 256 --greyout show background button id 72 --shutter show background button id 80 --mask show background button id 133 --shrinker show background button id 297 --vanilla show background button id 257 --stepper show background button id 103 --checkbox dingbats show background button id 108 --arrow dingbats show background button id 109 --hand dingbats showChainTools end ShowButtonTools on HideButtonTools hideChainTools hide background button id 109 --hand dingbats hide background button id 108 --arrow dingbats hide background button id 103 --checkbox dingbats hide background button id 297 --vanilla hide background button id 257 --stepper hide background button id 133 --shrinker hide background button id 80 --mask hide background button id 72 --shutter hide background button id 256 --greyout hide background button id 255 --inverter hide background button id 70 --flasher hide background button id 129 --tile hiliters hide background button id 16 --hiliter hide background button id 99 --chain together end HideButtonTools on showChainTools show background button id 117 --Delay show background button id 119 --Beep show background button id 206 --LockScreen show background button id 233 --Opener show background button id 271 --Linker if field "GraphArea" is not empty then show background button id 272 --Graph if field "LineSpecs" is not empty then show background button id 273 --Draw if field "PopUps" is not empty then show background button id 270 --PopUp end showChainTools on HideChainTools hide background button id 270 --PopUp hide background button id 273 --Draw hide background button id 272 --Graph hide background button id 271 --Linker hide background button id 233 --Opener hide background button id 206 --LockScreen hide background button id 119 --Beep hide background button id 117 --Delay end HideChainTools on ShowDrawTools global ToolView put "DrawTools" into ToolView show background button id 27 --drawline show background button id 258 --drawline wavy show background button id 259 --drawline dotted show background button id 102 --drawarrow show background button id 260 --drawArrow wavy show background button id 261 --drawArrow dotted show background button id 262 --border field show background button id 263 --shadow field show background button id 264 --connect fields show background button id 265 --make graph show background button id 84 --erase recent/all show background button id 293 --protect recent end ShowDrawTools on HideDrawTools hide background button id 293 --protect recent hide background button id 84 --erase recent/all hide background button id 265 --make graph hide background button id 264 --connect fields hide background button id 263 --shadow field hide background button id 262 --border field hide background button id 261 --drawArrow dotted hide background button id 260 --drawArrow wavy hide background button id 102 --drawArrow hide background button id 259 --drawline dotted hide background button id 258 --drawline wavy hide background button id 27 --drawLine end HideDrawTools on ShowNumber global WorkMenu show field "CardNumber" push card lock screen set the lockmessages to true go to card 1 of background "FX" set the visible of field "CardNumber" to true pop card set the lockmessages to false unlock screen ChangeMenu WorkMenu,9,"Hide Slide Numbers " end ShowNumber on HideNumber global WorkMenu hide field "CardNumber" lock screen set the lockmessages to true push card go to first card of background "FX" set the visible of field "CardNumber" to false pop card set the lockmessages to false unlock screen ChangeMenu WorkMenu,9,"Show Slide Numbers " end HideNumber on SortAll sort numeric by field "CardNumber" go first end SortAll function clickLine --Improved version of Apple's script. --Using clickloc is more reliable than using MouseV. --MouseV may have changed between time mouse was clicked --and time instruction is executed. if the style of the target is "scrolling" then put the scroll of the target into Scroll else put 0 into Scroll end if return ((((item 2 of the clickloc) + Scroll) - (item 2 of the rect of the target + 4)) ¬ -- 4 to allow for descenders div the textheight of the target) + 1 end clickLine on shrink NextObject put the rect of button id NextObject into rectWanted put word 2 of the short name of button id NextObject into increment put the bottom of button id NextObject into thisBottom add increment to item 2 of rectwanted if thisBottom - (item 2 of rectwanted) < (increment*0.75) then put thisBottom into item 2 of rectwanted end if lock screen set the rect of button id NextObject to rectWanted unlock screen add 1 to item 1 of line NextObject of field "Chains" end shrink on TabToFirst global ThisName, ThisSpot, ThisLine put quote & thisName & quote into word 6 of ThisSpot put ThisLine + 1 into word 2 of ThisSpot end TabToFirst on TabToLast global ObjectNumber, ThisName, ThisLine, ThisSpot put ObjectNumber into LastColumn repeat with i = ObjectNumber to the number of card fields if thisName is not the short name of card field i then exit repeat else put i into LastColumn end if end repeat put LastColumn into word 6 of ThisSpot put max(1,(ThisLine - 1)) into word 2 of ThisSpot end TabToLast on tabkey global TabWidth, ThisSpot, ObjectNumber, ThisName, ThisLine, TabDirection if the shiftKey is "down" then put -1 into TabDirection else put 1 into TabDirection if the selectedchunk is empty then --put cursor in first card field, if any if the number of card fields > 0 then select after text of card field 1 else pass TabKey end if else put the short name of the selectedfield into thisName if "Column" is in thisName then --move to same line of next column, if any put the selectedline into ThisSpot put word 2 of ThisSpot into ThisLine put word 6 of ThisSpot into ObjectNumber add tabDirection to word 6 of ThisSpot --sets normal expectations -- --but check for exceptions if tabDirection is 1 then if the number of card fields <= ObjectNumber --no next column then TabToFirst else --if "Column" is not in the short name --old version if thisName is not in the short name of card field (ObjectNumber + 1) then TabToFirst end if end if else --expecting to move to previous column, but see if one exists if ObjectNumber = 1 --no previous field then TabToLast else --check for previous column if thisName <> (the short name of card field (ObjectNumber - 1)) then --no previous column TabToLast end if end if end if --all necessary adjustments to thisSpot now made select after ThisSpot else if ThisName is "XValues" then TabToY --in background column else if ThisName is "YValues" then TabToX --in background column else if ThisName is "XMax" then select line 1 of field "XInt" else if ThisName is "XInt" then select line 1 of field "XMin" else if ThisName is "XMin" then select line 1 of field "YMax" else if ThisName is "YMax" then select line 1 of field "YInt" else if ThisName is "YInt" then select line 1 of field "YMin" else if ThisName is "YMin" then select line 1 of field "XMax" else --not in column; indent put the selectedchunk into here put ((word 2 of here) - 1) into word 4 of here do "select " & here --taking care not to delete anything repeat with i = 1 to TabWidth type " " end repeat end if end if end tabkey on TabToX global TabDirection put word 2 of the selectedline into ThisLine if TabDirection is 1 then add 1 to ThisLine if ThisLine > 16 then put 1 into ThisLine select after line ThisLine of field "XValues" end TabToX on TabToY global TabDirection put word 2 of the selectedline into ThisLine if TabDirection is -1 then subtract 1 from ThisLine if ThisLine < 1 then put 16 into ThisLine select after line ThisLine of field "YValues" end TabToY on returnInField if the shiftKey is not "down" then pass returnInField else put the selectedline into ThisSpot if word 2 of thisSpot is not 1 then subtract 1 from word 2 of ThisSpot select after ThisSpot else pass returnInField end if end if end returnInField on CreateField wanted global FieldsLocked, ObjectNumber, ObjectID lock screen show field id wanted select field id wanted domenu "copy field" domenu "paste field" hide field id wanted put the number of card fields into ObjectNumber put the ID of card field ObjectNumber into ObjectID if wanted is 237 --typewriter field then lockFields else put false into FieldsLocked set the icon of background button id 25 to "UnlockedFields" if wanted is not 137 and wanted is not 122 --not Rectangle or PopUp then choose browse tool unlock screen select char 1 to 0 of card field ObjectNumber else unlock screen end if end if end CreateField on CreateButton wanted global ObjectNumber, ObjectID show background button id wanted select background button id wanted domenu "copy button" domenu "paste button" hide background button id wanted put the number of buttons into ObjectNumber put the ID of button ObjectNumber into ObjectID end CreateButton on arrowkey which if which is "left" or which is "right" then set the lockmessages to true if which is "left" then go previous if which is "right" then go next set the lockmessages to false else pass arrowkey end if end arrowkey on GiveHelp whatever put quote & whatever into wanted if last char of wanted is " " then delete last char of wanted put quote after wanted if "Menu" is not in wanted then put " Command" after wanted put "Getting Help Concerning: " & wanted push card lock screen set the lockMessages to true go to stack "SmartSlides 1.1 Help" go to card whatever unlock screen hide msg set the lockmessages to false exit to HyperCard end GiveHelp on PrepForPrinting ShowNumber put the number of cards of background "work" into lastCard repeat with i = 1 to lastCard go to card i of background "work" put "Preparing card " & i & " of " & lastCard & "." repeat with i = 1 to the number of buttons if the style of button i is not "transparent" then hide button i end repeat end repeat put "Ready for printing." end PrepForPrinting on ShowCredits hide menubar send ClearCard to Field "Scripts" put empty into field "Credits" show field "Credits" put "SmartSlides Philosophy Department" & return into field "Credits" put "version 1.1 Syracuse University " & return after field "Credits" put "© June 5, 1990 Syracuse, NY 13244   " & return after field "Credits" put "Mark A. Brown (315) 443-5818     " & return & return after field "Credits" put "SmartSlides, its name, design and scripts, are all copyrighted." & return & return after field "Credits" put "THIS STACK IS SHAREWARE. " & return after field "Credits" put "You may freely copy it and give away copies," & return after field "Credits" put "as long as you preserve its copyright and shareware notices." & return after field "Credits" put "YOU MAY NOT SELL IT." & return after field "Credits" put "If you use this to give a lecture or presentation," & return after field "Credits" put "or as the base for another stack for similar purposes," & return after field "Credits" put "please send $15 to me at the above address" & return after field "Credits" put "the first time you use it." & return after field "Credits" put "Include your name & address and" & " I'll send you a copy of the manual." & return after field "Credits" put "XCMDs and XFCNs are freeware from Nine To Five Software." & return after field "Credits" put "My thanks to them for making extra menus possible." & return after field "Credits" show background button "Smart Help" show msg at 15,320 put " CLICK IN FIELD TO CONTINUE OR CLICK ON BUTTON FOR HELP" end ShowCredits